package com.sc.study.clazz.domain;

import com.sc.common.core.domain.entity.SysUser;
import com.sc.study.foundation.domain.ScGrade;
import com.sc.study.foundation.domain.ScRoom;
import com.sc.study.foundation.domain.ScSubject;
import com.sc.study.student.domain.ScStudent;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.sc.common.annotation.Excel;
import com.sc.common.core.domain.BaseEntity;

import java.util.List;

/**
 * 班级对象 sc_clazz
 * 
 * @author sc
 * @date 2022-02-27
 */
@Data
public class ScClazz extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 编号 */
    private Long id;

    /** 班级名称 */
    @Excel(name = "班级名称")
    private String clazzname;

    /** 年级编号 */
    @Excel(name = "年级编号")
    private Long gradeid;

    /** 状态 */
    @Excel(name = "状态")
    private Long state;

    /** 教室 */
    @Excel(name = "教室编号")
    private Long roomid;

    /** 班主任 */
    @Excel(name = "班主任编号")
    private Long userid;

    /** 班级包含的学员集合 */
    private List<ScStudent> scStudentList;

    /** 班级包含的历史学员集合 */
    private List<ScStudent> scOldStudentList;

    /** 班级包含的科目集合*/
    private List<ScSubject> scSubjectList;

    /** 班级包含的教室*/
    private ScRoom scRoom;

    /** 年级 */
    private ScGrade scGrade;

    /** 禁用状态 */
    private Long enbState;

    /** 班主任 */
    private SysUser user;


    public ScClazz() {
    }

    public ScClazz(Long id) {
        this.id = id;
    }

    public ScClazz(Long id, Long gradeid, Long state) {
        this.id = id;
        this.gradeid = gradeid;
        this.state = state;
    }

    public ScClazz(Long gradeid, Long state) {
        this.gradeid = gradeid;
        this.state = state;
    }

    public ScClazz(Long id, String clazzname, Long gradeid, Long state, List<ScStudent> scStudentList) {
        this.id = id;
        this.clazzname = clazzname;
        this.gradeid = gradeid;
        this.state = state;
        this.scStudentList = scStudentList;
    }
}
